package com.jprocms.module.cms.dal.base;

import com.jprocms.module.cms.util.ModelWrapper;
import org.springframework.lang.Nullable;


/**
 * Custom 类的抽象接口。方便统一处理Custom，如 ChannelAttrDO
 */
public interface ICustom {
    /**
     * 获取名称
     *
     * @return 名称
     */
    String getName();

    /**
     * 设置名称
     *
     * @param name 名称
     */
    void setName(String name);

    /**
     * 获取类型
     *
     * @return 类型
     */
    String getAttrType();

    /**
     * 设置类型
     *
     * @param type 类型
     */
    void setAttrType(String attrType);

    /**
     * 获取值
     *
     * @return 值
     */
    @Nullable
    String getAttrValue();

    /**
     * 设置值
     *
     * @param value 值
     */
    void setAttrValue(@Nullable String value);

    /**
     * 是否是富文本编辑器
     *
     * @return 是或否
     */
    default boolean isRichEditor() {
        return ModelWrapper.TYPE_EDITOR.equals(getAttrType());
    }
}
